其他
字符串函数总动员
本文作者:戴 雯,中南财经政法大学金融学院
文字编辑:王玉婷
技术总编:余术玲
爬虫俱乐部云端课程
导读
夏末秋凉,风里秋天的味道越来越浓,大家要干劲十足地在收获的季节里积攒知识能量呀!新的一波知识就从“收割”字符串函数开始吧~Stata的数据格式分为数值型和字符串型。字符是各种文字和符号的总称,如字母、数字、标点符号、空格等,字符串则是多个字符组成的序列。面对字符串型数据的整理工作,有什么既方便又准确的处理方法呢?别着急,这不,今天小编就为大家带来了几个字符串函数,一起学习一下吧~在介绍字符串函数之前,我们先来看一看字符与字节的关系,这对后面的学习很重要哦~简单来说,字节是一种计量单位,不同形式的字符所占字节数不同,同一形式的字符在不同的Stata版本中所占的字节也可能不同,具体如下:Stata14之前 | Stata14、15、16 | |
---|---|---|
英文字母、标点、符号、数字 | 占1个字节 | 占1个字节 |
中文标点、符号 | 占2个字节 | 占3个字节 |
中文汉字 | 占2个字节 | 大部分常用汉字占3个字节 |
1.strlen()
strlen()函数建立在字节的基础上,用来计算字符串中包含字节的长度,我们来看下面几个例子:
英文字母和英文符号均占1个字节,所以字符串"Stata&Python"所占字节数为12。
2.ustrlen()
与strlen()不同,ustrlen()建立在unicode的基础上,在unicode编码中,无论什么符号都只算一个字符,所以该函数的计算结果等同于字符串中的字符数。3.substr(s, n1, n2)
substr(s, n1, n2)函数建立在字节的基础上,用于提取字符串某一部分的子字符串,s表示某一原字符串,n1表示开始提取字节的位置,n2表示需要提取的子字符串所占字节的长度。如果n1<0,则从字符串倒数第|n1|个字节处开始提取;如果n2=.(缺失值),则提取的是从s的第n1个字节到最后一个字节,举例来看:*从字符串"abcdefg"的第3个字节处(c)截取字节长度为2的子字符串(cd)
disp substr("abcdefg",3,2)
*从字符串"abcdefg"的倒数第3个字节处(e)截取字节长度为2的子字符串(ef)
disp substr("abcdefg",-3,2)
*从字符串"abcdefg"的倒数第3个字节处(e)截取到字符串末尾的子字符串(efg)
disp substr("abcdefg",-3,.)
*常用汉字占3个字节,从字符串"爬虫俱乐部"的第4个字节处截取字节长度为3的子字符串(虫)
disp substr("爬虫俱乐部",4,3)
4.usubstr(s,n1,n2)
usubstr(s,n1,n2)是基于unicode提取字符串中的子字符串,s表示某一原字符串,n1、n2表示从第n1个unicode字符开始,提取长度为n2的unicode字符,这里的长度相当于字符的个数。如果n1<0,则从字符串倒数第|n1|个字符处开始提取;如果n2=.(缺失值),则提取的是从s的第n1个字符到最后一个字符。为了更形象地理解,一起看看下面两个例子吧:*从字符串"abcdefg"的第3个字符处(c)截取字符数为2的子字符串(cd)
disp usubstr("abcdefg",3,2)
*从字符串"爬虫俱乐部"的第1个字符处截取字符数为2的子字符串(爬虫)
disp usubstr("爬虫俱乐部",1,2)
5.subinstr(s1,s2,s3,n)
subinstr(s1,s2,s3,n)函数用于替换子字符串,将字符串s1中的前n个子字符串s2替换成字符串s3,如果n为“.”,字符串s1中包含的s2字符串会被全部替换为s3。*将"This is an island"中的第一个"is"替换成"X"
disp subinstr("This is an island","is","X",1)
*将"This is an island"中的前两个"is"替换成"X"
disp subinstr("This is an island","is","X",2)
*将"This is an island"中的所有"is"替换成"X"
disp subinstr("This is an island","is","X",.)
结果如下:对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!往期推文推荐让你的数据一目了然--label命令介绍Python推文合集基础篇(下)|算法简介【小白指南】Python中有哪些数据类型?(附推文合集)轻松获取通行数据——cntraveltime命令介绍让Stata完美牵手中国地图之cnmapsearch自然语言分析——利用NLTK进行文本预处理寻找B站的最爱--8月B站全站榜爬虫cnaddress命令——实现经纬度转换为中文地址定位神器——cngcodePython入门—Spyder的简单使用Jupyter Notebook 的这些tips你了解吗?给变量名换马甲之rename命令追踪命令set trace on——解你燃眉之急爬虫大杀器 | “手把手”教你配置Selenium关于我们
微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
此外,欢迎大家踊跃投稿,介绍一些关于stata和python的数据处理和分析技巧。投稿邮箱:statatraining@163.com投稿要求:1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。